/**
* \file CScript.h
* \author Corentin Le Bail
* \date 2009-2012
* \brief Fichier de déclaration de la class CScript
*/
//------------------------------------------------------------------------------
#ifndef __CSCRIPT_H__
#define __CSCRIPT_H__
//------------------------------------------------------------------------------
#include <QScriptEngine>
#include <QMainWindow>
#include <QString>
//------------------------------------------------------------------------------
/**
 * \class CScript CScript.h "CScript.h"
 * \brief Classe singleton d'exécution de script
 */
class CScript
{
	public:
		/**
	 	 * \fn static CScript *getInstance(void)
		 * \return L'instance de la classe
		 */
		static CScript *getInstance(void);
		/**
		 * \fn bool isTrue(QMainWindow *wnd, QString expression)
		 * \brief Test une expression relatif à une fenêtre
		 * \param[in] wnd Référence de la fenêtre
		 * \param[in] expression Expression à tester
		 * \return True si l'expression est vrai, false sinon
		 */
		bool isTrue(QMainWindow *wnd, QString expression);
		/**
		 * \fn QVariant eval(QMainWindow *wnd, QString expression)
		 * \brief Execute une expression relatif à une fenêtre
		 * \param[in] wnd Référence de la fenêtre
		 * \param[in] expression Expression à tester
		 * \return Le résultat de l'expression sous forme de QVariant
		 */
		QVariant eval(QMainWindow *wnd, QString expression);
	private:
		static CScript *_instance;
		QScriptEngine *engine;
		
		CScript(void);
		~CScript(void);
};
//------------------------------------------------------------------------------
#endif //__CSCRIPT_H__
//------------------------------------------------------------------------------